package com.leyou.auth.utils;

import com.leyou.auth.dto.UserDetails;


public class UserContext {
    //存储用户
    private static final ThreadLocal<UserDetails> TL = new ThreadLocal<>();

    //存储JWT
    private static final ThreadLocal<String> TL2 = new ThreadLocal<>();

    /**
     * 存储一个用户到当前线程
     * @param user 用户信息
     */
    public static void setUser(UserDetails user) {
        TL.set(user);
    }

    /**
     * 从当前线程获取一个用户
     * @return 用户信息
     */
    public static UserDetails getUser() {
        return TL.get();
    }

    /**
     * 从当前线程移除用户
     */
    public static void removeUser() {
        TL.remove();
    }

    /**
     * 存储一个JWT到当前线程
     * @param jwt
     */
    public static void setJwt(String jwt) {
        TL2.set(jwt);
    }

    /**
     * 从当前线程获取一个JWT
     * @return 用户信息
     */
    public static String getJwt() {
        return TL2.get();
    }

    /**
     * 从当前线程移除JWT
     */
    public static void removeJwt() {
        TL2.remove();
    }
}